package cn.virens.cmpt.server;

import cn.virens.cmpt.server.channel.Channel;

public interface ServerManage {

	String getHost();

	Integer getPort();

	boolean isWaitStop();

	/**
	 * 解绑/断开连接
	 * 
	 * @param channel 连接
	 */
	void unbindUid(Channel channel);

	/**
	 * 绑定连接的用户ID
	 * 
	 * @param channel 连接
	 * @param uid     用户ID
	 */
	void bindUid(Channel channel, String uid);

	/**
	 * 数据发送到指定连接
	 * 
	 * @param uid    用户ID
	 * @param packet 数据包
	 */
	void send(String uid, Packet packet);

	/**
	 * 数据发送到指定连接
	 * 
	 * @param channel 连接
	 * @param packet  数据包
	 */
	void send(Channel channel, Packet packet);

	/**
	 * 根据用户ID获取连接
	 * 
	 * @param  uid 用户ID
	 * @return
	 */
	Channel getChannel(String uid);

}
